package com.cskaoyan.javase._1extends._10final._3variable._4exercise;

/**
 * 读程序题
 * @since 15:49
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        byte num1 = 0;
        byte num2 = 0;
        final byte num3 = 10;
        final byte num4 = 20;
        byte result;
        int resultInt;
        /*
            表达式的类型提升
            byte,short,char三种类型的变量参与数值运算
            运算的结果统一是int类型
         */
        // result = num1 + num2;
        resultInt = num1 + num2;
        /*
            整数常量的特殊性
                可以自动根据整数结果判断取值范围,判断数据类型
            num3和num4都是int类型常量
         */
        // 等价于 result = 10 + 20;
        result = num3 + num4;

        final byte num5 = 120;
        final byte num6 = 30;
        // 等价于 result = 120 + 30;
        // 已经超出了byte的取值范围,会编译报错
        // result = num5 + num6;

        /*
            表达式的类型提升
            只要表达式中存在任一变量
            整体都要遵循表达式类型提升
         */
        // result = num1 + num3;
    }

}
